package com.example.tool.ui.theme

import androidx.compose.ui.graphics.Color

// 定义主题标准色
val LightPrimary = generateDistinctColor(0)
val LightSecondary = generateDistinctColor(1)
val LightTertiary = generateDistinctColor(2)

val DarkPrimary = generateDistinctColor(3)
val DarkSecondary = generateDistinctColor(4)
val DarkTertiary = generateDistinctColor(5)

// 生成高区分度颜色的扩展函数
//fun generateDistinctColor(index: Int): Color {
//    return try {
//        // 增强版黄金分割算法，增加随机扰动
//        val goldenRatio = 137.5077641f
//        val randomFactor = (index * 179426491) % 100 // 使用大质数生成随机因子
//        val hue = (index * goldenRatio + randomFactor * 0.618f) % 360f
//
//        // 动态调整饱和度和亮度，增强对比
//        val saturation = 0.7f + (index % 3) * 0.15f // 0.7-1.0范围
//        val lightness = 0.4f + (index % 5) * 0.1f   // 0.4-0.8范围
//
//        // 打印 hue, saturation, lightness 的值
//        println("Index: $index")
//        println("Hue: $hue")
//        println("Saturation: ${saturation.coerceIn(0.7f, 0.95f)}")
//        println("Lightness: ${lightness.coerceIn(0.35f, 0.75f)}")
//
//        // 生成颜色
//        Color.hsl(
//            hue = hue,
//            saturation = saturation.coerceIn(0.7f, 0.95f),
//            lightness = lightness.coerceIn(0.35f, 0.75f)
//        )
//    } catch (e: IllegalArgumentException) {
//        // 捕获非法参数异常
//        println("Error generating color for index $index: ${e.message}")
//        // 返回一个默认颜色，例如灰色
//        Color.hsl(0f, 0f, 0.5f)
//    } catch (e: Exception) {
//        // 捕获其他异常
//        println("Unexpected error generating color for index $index: ${e.message}")
//        // 返回一个默认颜色，例如灰色
//        Color.hsl(0f, 0f, 0.5f)
//    }
//}


fun generateDistinctColor(index: Int): Color {
    // 增强版黄金分割算法，增加随机扰动
    val goldenRatio = 137.5077641f
    val randomFactor = (index * 179426491) % 100 // 使用大质数生成随机因子
    val hue = (index * goldenRatio + randomFactor * 0.618f) % 360f

    // 动态调整饱和度和亮度，增强对比
    val saturation = 0.7f + (index % 3) * 0.15f // 0.7-1.0范围
    val lightness = 0.4f + (index % 5) * 0.1f   // 0.4-0.8范围

    val hsl = Color.hsl(
        hue = hue,
        saturation = saturation.coerceIn(0.7f, 0.95f),
        lightness = lightness.coerceIn(0.35f, 0.75f)
    )
    return hsl
}